

#ifndef ACACCOUNTDAO_STRUCT_H
#define ACACCOUNTDAO_STRUCT_H

#include <stdint.h>
#include <string>
#include <iostream>
#include "libc2c/byte_stream.h"
#include "app_platform/intf_service_object.h"
#include "erp/acaccount/ddo/acitemsddo_acaccount.h"	
#include <set>	
#include <map>	
#include <vector>	
#include "erp/acaccount/ddo/bankaccountddo_acaccount.h"	
#include "erp/acaccount/ddo/acitemsfilterddo_acaccount.h"	
#include "erp/acaccount/ddo/bankaccountfilterddo_acaccount.h"	

namespace erp
{
namespace acaccount
{
namespace dao
{

	const uint32_t ACACCOUNTDAO_ADDANDUPDATEACITEMS_REQ_CMD_ID = 0xc0611805; /// 请求命令号
	const uint32_t ACACCOUNTDAO_ADDANDUPDATEACITEMS_RESP_CMD_ID = 0xc0618805; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_ADDANDUPDATEBANKACCOUNT_REQ_CMD_ID = 0xc0611803; /// 请求命令号
	const uint32_t ACACCOUNTDAO_ADDANDUPDATEBANKACCOUNT_RESP_CMD_ID = 0xc0618803; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_DELETEACITEMS_REQ_CMD_ID = 0xc0611806; /// 请求命令号
	const uint32_t ACACCOUNTDAO_DELETEACITEMS_RESP_CMD_ID = 0xc0618806; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_DELETEBANKACCOUNT_REQ_CMD_ID = 0xc0611804; /// 请求命令号
	const uint32_t ACACCOUNTDAO_DELETEBANKACCOUNT_RESP_CMD_ID = 0xc0618804; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_GETACITEMSBYFILTER_REQ_CMD_ID = 0xc0611808; /// 请求命令号
	const uint32_t ACACCOUNTDAO_GETACITEMSBYFILTER_RESP_CMD_ID = 0xc0618808; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_GETACITEMSBYSYSNOS_REQ_CMD_ID = 0xc0611807; /// 请求命令号
	const uint32_t ACACCOUNTDAO_GETACITEMSBYSYSNOS_RESP_CMD_ID = 0xc0618807; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_GETBANKACCOUNTBYFILTER_REQ_CMD_ID = 0xc0611802; /// 请求命令号
	const uint32_t ACACCOUNTDAO_GETBANKACCOUNTBYFILTER_RESP_CMD_ID = 0xc0618802; /// 回应命令号
	

	const uint32_t ACACCOUNTDAO_GETBANKACCOUNTBYSYSNOS_REQ_CMD_ID = 0xc0611801; /// 请求命令号
	const uint32_t ACACCOUNTDAO_GETBANKACCOUNTBYSYSNOS_RESP_CMD_ID = 0xc0618801; /// 回应命令号
	


const uint16_t ACACCOUNTDAO_MAX_PROTOCAL_VERSION = 2; //>平台支持的最大协议版本号


///////////////////////////// STRUCTS /////////////////////////////////////////////////
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoAddAndUpdateACItemsReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::acaccount::ddo::CACItemsDdo aCItemsDdo;	
		std::string inReserve;
		std::string errmsg;
		uint64_t aCItemsSysNo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_ADDANDUPDATEACITEMS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			aCItemsDdo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoAddAndUpdateACItemsResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint64_t aCItemsSysNo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_ADDANDUPDATEACITEMS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & aCItemsSysNo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoAddAndUpdateBankAccountReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::acaccount::ddo::CBankAccountDdo bankAccount;	
		std::string inReserve;
		std::string errmsg;
		uint64_t bankAccountSysNo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_ADDANDUPDATEBANKACCOUNT_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bankAccount.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoAddAndUpdateBankAccountResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint64_t bankAccountSysNo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_ADDANDUPDATEBANKACCOUNT_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & bankAccountSysNo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoDeleteACItemsReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint64_t ACItemsSysNo;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_DELETEACITEMS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & ACItemsSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoDeleteACItemsResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_DELETEACITEMS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoDeleteBankAccountReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint64_t bankAccountSysNo;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_DELETEBANKACCOUNT_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & bankAccountSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoDeleteBankAccountResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_DELETEBANKACCOUNT_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetACItemsByFilterReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::acaccount::ddo::CACItemsFilterDdo bankAccountFilter;	
		std::string inReserve;
		std::string errmsg;
		std::vector<erp::acaccount::ddo::CACItemsDdo > aCItems;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETACITEMSBYFILTER_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bankAccountFilter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetACItemsByFilterResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::vector<erp::acaccount::ddo::CACItemsDdo > aCItems;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETACITEMSBYFILTER_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & aCItems;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetACItemsBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		std::set<uint64_t > sysNoList;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,erp::acaccount::ddo::CACItemsDdo > aACItems;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETACITEMSBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & sysNoList;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetACItemsBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,erp::acaccount::ddo::CACItemsDdo > aACItems;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETACITEMSBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & aACItems;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetBankAccountByFilterReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		erp::acaccount::ddo::CBankAccountFilterDdo bankAccountFilter;	
		std::string inReserve;
		std::string errmsg;
		std::vector<erp::acaccount::ddo::CBankAccountDdo > bankAccount;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETBANKACCOUNTBYFILTER_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bankAccountFilter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetBankAccountByFilterResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::vector<erp::acaccount::ddo::CBankAccountDdo > bankAccount;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETBANKACCOUNTBYFILTER_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & bankAccount;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetBankAccountBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		std::set<uint64_t > sysNoList;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,erp::acaccount::ddo::CBankAccountDdo > bankAccount;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETBANKACCOUNTBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & sysNoList;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 18:44:43
 	 * @version 0
	 */	
	struct CACAccountDaoGetBankAccountBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,erp::acaccount::ddo::CBankAccountDdo > bankAccount;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACACCOUNTDAO_GETBANKACCOUNTBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & bankAccount;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	

}
}
}

#endif /* ACACCOUNTDAO_STRUCT_H */

